Increasingly, services are being provided from “the cloud” (i.e., being provided from a location remote from the user). The provider of the services may be called a “service provider”, and the user of the services may be called a client. The service provider in some cases may own the cloud resources (e.g., compute resources, network resources, storage resources, etc.), while in other cases, may pay another entity for the use of such resources. The advantages offered to a client is the ability to use the services without needing to manage the software (e.g., perform software updates) or the hardware (e.g., purchase more storage, etc.).
The rapid deployment of cloud services has resulted in communication interfaces offered by service providers that are disjoint from one another. A first set of function calls and schema must be used to communicate with a first service provider and a second set of function calls and schema must be used to communicate with a second service provider. One way to address such disjoint communication is to mandate that all service providers “speak in a common language” (e.g., use common variable names, function names, etc.). Such approach, however, requires much redesign of existing systems. Techniques are described hereinbelow which allow service providers to maintain their autonomy, while at the same time provides a unified framework for clients to communicate with service providers, as well as for service providers to communicate with one another.